import request from '@/utils/request';

/**
 * 驾驶员相关API
 */
const driverApi = {
  /**
   * 获取驾驶员列表
   * @param {Object} params 查询参数，包含分页信息和筛选条件
   * @returns {Promise} 返回驾驶员列表和分页信息
   */
  getDriverList(params) {
    return request({
      url: '/driver/list',
      method: 'get',
      params
    });
  },
  
  /**
   * 获取驾驶员详情
   * @param {Number} id 驾驶员ID
   * @returns {Promise} 返回驾驶员详情信息
   */
  getDriverDetail(id) {
    return request({
      url: `/driver/${id}`,
      method: 'get'
    });
  },
  
  /**
   * 添加驾驶员
   * @param {Object} data 驾驶员信息 (包含name, gender, birthDate, phone, department等字段)
   * @returns {Promise} 返回添加结果
   */
  addDriver(data) {
    // 确保日期格式正确
    const driverData = { ...data };
    if (driverData.birthDate) {
      // 如果birthDate是字符串格式，保持不变
      // 如果birthDate是Date对象，转换为字符串
      if (driverData.birthDate instanceof Date) {
        driverData.birthDate = driverData.birthDate.toISOString().split('T')[0];
      }
    }
    
    return request({
      url: '/driver',
      method: 'post',
      data: driverData
    });
  },
  
  /**
   * 更新驾驶员
   * @param {Object} data 驾驶员信息 (必须包含id字段)
   * @returns {Promise} 返回更新结果
   */
  updateDriver(data) {
    // 确保日期格式正确
    const driverData = { ...data };
    if (driverData.birthDate) {
      // 如果birthDate是字符串格式，保持不变
      // 如果birthDate是Date对象，转换为字符串
      if (driverData.birthDate instanceof Date) {
        driverData.birthDate = driverData.birthDate.toISOString().split('T')[0];
      }
    }
    
    return request({
      url: '/driver',
      method: 'put',
      data: driverData
    });
  },
  
  /**
   * 删除驾驶员
   * @param {Number} id 驾驶员ID
   * @returns {Promise} 返回删除结果
   */
  deleteDriver(id) {
    return request({
      url: `/driver/${id}`,
      method: 'delete'
    });
  },
  
  /**
   * 获取部门列表
   * @returns {Promise} 返回部门列表
   */
  getDepartments() {
    return request({
      url: '/driver/departments',
      method: 'get'
    });
  }
};

export default driverApi; 